<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>列表页面</title>
    <style>
        td{
            text-align: center;
        }
    </style>
</head>
<body>
<h1>商品页面</h1>
<table border="1">
    <tr>
        <th>商品ID</th>
        <th>商品标题</th>
        <th>商品价格</th>
        <th>商品销量</th>
        <th>操作</th>
    </tr>
    <tr v-for="p in arr">
        <td>{{p.id}}</td>
        <td>{{p.title}}</td>
        <td>{{p.price}}</td>
        <td>{{p.saleCount}}</td>
        <!--javascript:void(0)表示废除超链接原本的点击效果-->
        <td>
            <a href="javascript:void(0)" @click="del(p.id)">删除</a>
            <!--点击修改需要跳转页面,所以不能像删除一样废掉跳转功能-->
            <!--元素的属性里面出现变量 需要进行属性绑定-->
            <a :href="'/update.html?id='+p.id">修改</a>
        </td>
    </tr>
</table>
<script src="js/vue.js"></script>
<script src="js/axios.min.js"></script>
<script>
    let v = new Vue({
        el: "table",
        data: {
            arr: []
        },
        created:function () {// 此方法是一个固定方法,是Vue创建时执行的方法,一般会把加载完页面请求数据的代码,写在此方法中
            // 发出异步请求获取数据
            axios.get("/select").then(function (response) {
                // 服务器返回的数据直接给到arr数组,由于页面和数组进行了绑定,数组值发生改变时,页面会自动发生改变
                // 服务器传递过来的是二进制的数据,先将二进制的数据转回JSON格式的字符串,转完字符串之后Axios框架会再将JSON格式的字符串转成数组对象
                v.arr=response.data;
            });
        },
        methods:{
            del(id) {
                // 发出删除的异步操作
                axios.get("/delete?id="+id).then(function () {
                    alert("删除成功!");
                    location.reload();// 刷新当前页面
                });
            }
        }
    })
</script>
</body>
</html>